package br.com.atenas.sigop.servico;

import java.sql.Connection;
import java.util.Collection;
import br.com.atenas.sigop.dao.LivroDAO;
import br.com.atenas.sigop.servico.Service;
import br.com.atenas.sigop.dao.ConnectionFactory;
import br.com.atenas.sigop.dto.LivroDTO;

public class LivroService extends Service{

	public void gravarLivro(LivroDTO livro) throws Exception {
		Connection conn = null;
		try{
			conn = ConnectionFactory.getConnection();
			LivroDAO dao = new LivroDAO();
			dao.gravar(livro,conn);
		}catch(Exception e){
			throw new RuntimeException(e);
		}finally{
			fecharConexao(conn);
		}
	}
		
	public Collection<LivroDTO> pesquisarLivro(LivroDTO livro) throws Exception{
		Connection conn = null;
		try{
			conn = ConnectionFactory.getConnection();
			LivroDAO dao = new LivroDAO();
			return dao.pesquisar(livro, conn);
		}catch(Exception e){
			throw new RuntimeException(e);
		}finally{
			fecharConexao(conn);
		}
	}

	public void alterarLivro(LivroDTO livro) throws Exception {
		Connection conn = null;
		try{
			conn = ConnectionFactory.getConnection();
			LivroDAO dao = new LivroDAO();
			dao.alterar(livro,conn);
			conn.commit();
		}catch(Exception e){
			throw new RuntimeException(e);
		}finally{
			fecharConexao(conn);
		}
	}

	public void excluirLivro(LivroDTO livro) throws Exception {
		Connection conn = null;
		try{
			conn = ConnectionFactory.getConnection();
			LivroDAO dao = new LivroDAO();
			dao.excluir(livro,conn);
			conn.commit();
		}catch(Exception e){
			throw new RuntimeException(e);
		}finally{
			fecharConexao(conn);
		}
	}
}